Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposal: crosslinks #5535

Open
eshellman opened this issue Sep 13, 2021 · 6 comments
Open

proposal: crosslinks #5535

eshellman opened this issue Sep 13, 2021 · 6 comments
Labels
👥 discussion This Repo is guided by its community! Let's talk! New Feature New feature / enhancement / translation...

Comments

@eshellman
Copy link
Collaborator

PR #5525 introduces section-to-section crosslinks so that users looking for Angular books will find them whether they are looking for Angular or AngularJS.

This issue asks the community:

@davorpa
Copy link
Member

davorpa commented Sep 13, 2021

At a glance.... the proposal syntax is...

All crosslinks starts with > :information_source: and uses horizontal ellipsis … as delimiter between crossed sections and it alphabetized text. This markup goes between heading and it listing first item preseving the 1 whitespaces rule on all of them.

One way reference:

### Heading A

> :information_source: See also … [Heading B](#heading-b)

* [Awesome book in A](https://library.example.com/awesome-book-a) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)

Two sides reference:

### Heading A

> :information_source: See also … [Heading Z](#heading-z)

* [Awesome book in A](https://library.example.com/awesome-book-a) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)


### Heading Z

> :information_source: See also … [Heading A](#heading-a)

* [Awesome book in Z](https://library.example.com/awesome-book-z) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)

Multireference: separate each one by a comma

### Cabecera A

> :information_source: Véase también … [Cabecera M](#cabecera-m), [Cabecera Z](#cabecera-z)

* [Un recurso alucinante en A](https://libros.example.com/libro-a) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)


### Cabecera M

> :information_source: Véase también … [Cabecera A](#cabecera-a)

* [Un recurso alucinante en M](https://libros.example.com/libro-m) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)

### Cabecera Z

* [Un recurso alucinante en A](https://libros.example.com/libro-a) - creator 1, creator2 et al. (FORMAT) (platform) (*notes*)

I hope this snippets helps to understand what is the idea.

@eshellman
Copy link
Collaborator Author

did you try having the crosslinks below the list?

@davorpa
Copy link
Member

davorpa commented Sep 14, 2021

did you try having the crosslinks below the list?

I could try. Let me a bit to prepare a demo in my deploy with Angular resources.

Only one note: I prefer at top if lists are long because is more intuitive and don't need scroll

/labelthis: proposal, discussion

davorpa added a commit to davorpa/free-programming-books that referenced this issue Sep 15, 2021
@davorpa
Copy link
Member

davorpa commented Sep 15, 2021

did you try having the crosslinks below the list?

@eshellman, it works fine at bottom too. No problems with linter if rule 1-0-2 is respected.

Now the rule will be 1-(0-1)?-0-2 at top, or 1-0-(1-0)?-2 if placed at bottom 😆

Here the example in both sides I promised (javascript section): DEPLOY and CODE BRANCH

Only one note: I prefer at top if lists are long because is more intuitive and don't need scroll

@eshellman
Copy link
Collaborator Author

I was thinking that if we separate out the "language agnostic" section to a separate page, we might need more than one crosslink, and you don't want people scrolling through crosslinks to get to the listings. I looked in a cookbook with many "see also" listings in the index - it puts the cross links in the topic heading itself.

@davorpa davorpa mentioned this issue Sep 20, 2021
5 tasks
@davorpa
Copy link
Member

davorpa commented Sep 20, 2021

Well-thinking!

But If crosslink is attached after section title, auto TOC is broken in markdown because generated ids change according to heading text.

### Heading A (:information_source: … [Heading B](#heading-b))

produces an id anchor heading-a-information-source-heading-b for Heading A instead of a merely heading-a

Therefore the multireference variant: one after other comma delimited.

davorpa added a commit to davorpa/free-programming-books that referenced this issue Sep 27, 2021
davorpa added a commit to davorpa/free-programming-books that referenced this issue Sep 27, 2021
@davorpa davorpa added 👥 discussion This Repo is guided by its community! Let's talk! New Feature New feature / enhancement / translation... labels Sep 28, 2021
@davorpa davorpa changed the title crosslinks proposals proposal: crosslinks Nov 29, 2021
@eshellman eshellman mentioned this issue Jan 15, 2022
5 tasks
davorpa added a commit to davorpa/free-programming-books that referenced this issue Sep 9, 2022
This homogenize the place where are organized the IDE and editors like Vim, Emacs, Visual Studio, Visual Studio Code, Eclipse, IntelliJ... into the same section.

Emacs Lips is a language per sé. so apply and add some crosslinks EbookFoundation#5535 in order to reference editors.

Moved books in `-langs.md` now are in `-subjects.md` since editors are language agnostic, I think.

Complete this moved resources with author, formats and notes
eshellman pushed a commit that referenced this issue Sep 13, 2022
* chore!: join editors into section `IDE and editors`

This homogenize the place where are organized the IDE and editors like Vim, Emacs, Visual Studio, Visual Studio Code, Eclipse, IntelliJ... into the same section.

Emacs Lips is a language per sé. so apply and add some crosslinks #5535 in order to reference editors.

Moved books in `-langs.md` now are in `-subjects.md` since editors are language agnostic, I think.

Complete this moved resources with author, formats and notes

* fix: alphabetize says linter

https://github.com/EbookFoundation/free-programming-books/runs/8267734103?check_suite_focus=true

Run fpb-lint ./books/
books/free-programming-books-ja.md
  4:5-22:42  warning  Alphabetical ordering: swap l.22 and l.21  alphabetize-lists  remark-lint

books/free-programming-books-pt_BR.md
  58:1-61:70  warning  Alphabetical ordering: swap l.60 and l.59  alphabetize-lists  remark-lint

books/free-programming-books-zh.md
  254:1-258:87  warning  Alphabetical ordering: swap l.258 and l.257  alphabetize-lists  remark-lint

* chore!: Organize near spoken Lisp dialects.

- Common Lisp, PicoLisp, Emacs Lisp -> Lisp
- Rename Common Lisp and LISP -> Lisp
- Emacs & Pico as subsections of Lisp preserving current crosslinks

* chore: merge non-referenced Emacs Lisp into Lisp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
👥 discussion This Repo is guided by its community! Let's talk! New Feature New feature / enhancement / translation...
Projects
None yet
Development

No branches or pull requests

3 participants
@eshellman @davorpa and others