index.rst 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. .. _lps-doc-sec-schedule:
  2. LP schedule
  3. -----------
  4. .. highlight:: text
  5. Markdown structure
  6. ~~~~~~~~~~~~~~~~~~
  7. Overall structure::
  8. ## Day 1
  9. ### Timeslot 1
  10. #### Session 1
  11. #### Session 2
  12. ...
  13. ### Timeslot 2
  14. #### Session 1
  15. #### Session 2
  16. ...
  17. ## Day 2
  18. ### Timeslot 1
  19. #### Session 1
  20. #### Session 2
  21. ...
  22. Level two heading (``##``) format::
  23. ## Saturday, March 19
  24. ...
  25. ## Sunday, March 20
  26. Level three heading (``###``) format::
  27. ### 09:00 - 09:45: Registration and Breakfast
  28. ### 09:45 - 10:45: Opening Keynote
  29. ...
  30. ### 10:55 - 11:40: Session Block 1A
  31. Session structure::
  32. #### Fork and ignore: fighting a GPL violation by coding instead
  33. [Bradley Kuhn][kuhn], [Karen Sandler][sandler]
  34. Room 32-155
  35. https://libre.planet/fork-and-ignore.webm
  36. Typically, GPL enforcement activity involves copyright infringement
  37. actions which compel license violators to correct errors in their
  38. GPL compliance, defending the policy goals of the GPL: the rights of
  39. developers and users to copy, share, modify and redistribute.
  40. While traditional enforcement is often undeniably necessary for
  41. embedded electronics products, novel approaches to GPL violations
  42. are often possible and even superior for more traditional software
  43. distributions.
  44. Recently, [Software Freedom Conservancy][sfc] engaged in an
  45. enforcement action whereby, rather than fight the violator in court,
  46. we instead provided resources and assistance to a vetted
  47. GPL-compliant fork of a violating codebase.
  48. This talk discusses which scenarios make this remedy optimal and the
  49. lessons learned. The talk includes some licensing and technical
  50. content about vetting the licensing information of codebases.
  51. [kuhn]: https://libreplanet.org/YEAR/path/to/speakers.html#kuhn
  52. [sandler]: https://libreplanet.org/YEAR/path/to/speakers.html#sandler
  53. [sfc]: https://sfconservancy.org/
  54. Sample: https://notabug.org/rsd/lpschedule-generator/raw/master/tests/files/lp-sch.md
  55. Auto-linking speaker names
  56. ++++++++++++++++++++++++++
  57. Speakers in the schedule MD can be auto-linked to speakers' page by
  58. marking them up like this ``[John Hacker]()``
  59. The script converts:
  60. - ``[John Hacker]()`` to ``<a href="speakers.html#hacker">John
  61. Hacker</a>`` if John Hacker's bio is available in the speakers' page.
  62. - ``[John Hacker]()`` to ``John Hacker`` if John Hacker's bio is not
  63. available in the speakers' page. In this case, the script also appends
  64. ``John Hacker`` name in the ``speakers.noids`` file.
  65. The ``speakers.noids`` file contains a list of speakers who were
  66. auto-linked in the schedule MD but who's bio is not (yet) available
  67. in the speakers' page.
  68. For auto-linking speakers, the script uses the ``speakers.ids`` file;
  69. this file is written to the disk after generating the the speakers'
  70. page from MD. Generate the speakers' page before generating the
  71. schedule page for auto-linking to work.
  72. Sample: https://notabug.org/rsd/lpschedule-generator/raw/master/tests/files/lp-sessions-autolink.md
  73. Special cases
  74. +++++++++++++
  75. Speaker TBA
  76. ...........
  77. When the speaker information for a session is not yet available put
  78. ``SpeakerTBA`` as the placeholder in the line that usually contains
  79. the speaker information; the rendered HTML will not have speaker
  80. information for sessions that have ``SpeakerTBA``.
  81. Room TBA
  82. ........
  83. When a room for a session is not yet available put ``RoomTBA`` as the
  84. placeholder in the line that usually contains the room number; the
  85. rendered HTML will not have the room number for sessions that have
  86. ``RoomTBA``.
  87. Video TBA
  88. .........
  89. When the video for a session is not yet available put ``VideoTBA`` as
  90. the placeholder in the line that usually contains the URL for the
  91. video; the rendered HTML will not have the video link for sessions
  92. that have ``VideoTBA``.
  93. Description TBA
  94. ...............
  95. When the description for session is not yet available put ``DescTBA``
  96. as the placeholder; the rendered HTML will not have the description
  97. for sessions that have ``DescTBA``.
  98. Sample: https://notabug.org/rsd/lpschedule-generator/raw/master/tests/files/lp-sch-tba.md
  99. Sessions only schedule
  100. ......................
  101. It is possible to have a sessions only schedule. To do this, at the
  102. beginning of the markdown document:
  103. - Add a level two heading (``##``) with one or more whitespaces.
  104. - Add a level three heading (``###``) with one or more whitespaces.
  105. Sessions only sample: https://notabug.org/rsd/lpschedule-generator/raw/master/tests/files/lp-sch-sessions-only.md
  106. Single session time slot
  107. ........................
  108. If a time slot contains only one session (like a Keynote), then
  109. session heading/title can be omitted::
  110. ### 9:00 - 10:45: Opening Keynote - Beyond unfree...
  111. [Cory Doctorow][doctorow]
  112. Room 32-123
  113. https://libre.planet/doctorow-beyond-unfree
  114. Software has eaten the world...
  115. .. highlight:: bash
  116. Generate HTML from Markdown
  117. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  118. ::
  119. $ lps_gen -s path/to/lp-sch.jinja2 path/to/lp-sch.md > path/to/program-schedule.html
  120. or::
  121. $ lps_gen --schedule path/to/lp-schedule.jinja2 path/to/lp-sch.md > path/to/program-schedule.html
  122. iCal export
  123. ~~~~~~~~~~~
  124. The ``--ical`` switch enables iCal export while generating LP
  125. schedule::
  126. $ lps_gen -s --ical 2016 path/to/lp-schedule.jinja2 path/to/lp-schedule.md > path/to/program-schedule.html
  127. The year of the conference must be given as an argument to the
  128. ``--ical`` switch.
  129. If you run into issues, ask for :ref:`help <lps-doc-sec-help>`.
  130. Next, you might want to look at the :ref:`lps-doc-sec-speakers` section or the :ref:`lps-doc-sec-general` section.